home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. Windows 3
/
dr win3.zip
/
dr win3
/
PROGRAMR
/
ACKSRC.ZIP
/
ACKGOAL.C
< prev
next >
Wrap
Text File
|
1993-06-17
|
2KB
|
127 lines
/* ACK-3D ( Animation Construction Kit 3D ) */
/* Goal routine */
/* Author: Lary Myers */
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include <mem.h>
#include <alloc.h>
#include <io.h>
#include <fcntl.h>
#include <time.h>
#include <string.h>
#include <sys\stat.h>
#include "ack3d.h"
#include "ackext.h"
extern unsigned char far colordat[];
/****************************************************************************
** **
****************************************************************************/
int ShowScreen(char *sName)
{
int handle;
unsigned char *sBuffer,*Video;
unsigned char *pBuffer;
pBuffer = malloc(768);
if (pBuffer == NULL)
return(-1);
if (!stricmp(GetExtent(sName),"LBM"))
{
sBuffer = Readiff(sName);
memmove(sBuffer,&sBuffer[4],64000);
memmove(pBuffer,colordat,768);
}
else
{
handle = open(sName,O_RDWR|O_BINARY);
if (handle < 1)
{
free(pBuffer);
return(-2);
}
sBuffer = malloc(64000);
if (sBuffer)
{
read(handle,sBuffer,4);
read(handle,sBuffer,64000);
}
close(handle);
if (*GoalPalFile)
{
handle = open(GoalPalFile,O_RDWR|O_BINARY);
if (handle > 0)
{
read(handle,pBuffer,768);
close(handle);
}
else
{
free(pBuffer);
pBuffer = NULL;
}
}
else
{
free(pBuffer);
pBuffer = NULL;
}
}
if (sBuffer == NULL)
{
if (pBuffer)
free(pBuffer);
return(-3);
}
if (pBuffer)
{
SetPalette(pBuffer);
free(pBuffer);
}
Video = MK_FP(0xA000,0);
memmove(Video,sBuffer,64000);
free(sBuffer);
return(0);
}
/****************************************************************************
** Here is where everything finishes up. If a screen was specified in the **
** master description file then it is displayed, otherwise a simple **
** YOU WON! is shown. **
****************************************************************************/
void DoGoalScreen(void)
{
int result;
SetVGAmode();
result = 1;
if (*GoalFile)
result = ShowScreen(GoalFile);
if (result)
{
printf("\tY O U W O N ! !");
}
setvect(KEYBD,oldvec);
getch();
}